package 字符串;

/**
 * 392. 判断子序列
 *
 * 给定字符串 s 和 t ，判断 s 是否为 t 的子序列。
 * 字符串的一个子序列是原始字符串删除一些（也可以不删除）字符而不改变剩余字符相对位置形成的新字符串。（例如，"ace"是"abcde"的一个子序列，而"aec"不是）。
 *
 * 思路：对于两个字符串，使用双指针思路，
 *  定义 两个指针，分别指向字符串s和t的起始位置，
 *  然后遍历字符串t，如果t[j] == s[i]，则指针i++，
 *  直到i的末位为s.length()，则返回true，否则返回false。
 *
 */
public class L_392 {
    public boolean isSubsequence(String s, String t) {
        if(s.length() == 0){
            return true;
        }
        int i = 0; // s的起点
        for (int j = 0; j < t.length(); j++) {
            if(s.charAt(i) == t.charAt(j)){
                i++;
                if(i == s.length()){
                    return true;
                }
            }
        }
        return false;
    }
}
